package com.ys.nms.module.business.dal.dataobject.mempools;

import com.baomidou.dynamic.datasource.annotation.Slave;
import com.ys.nms.framework.mybatis.core.dataobject.BaseSlaveDO;
import com.ys.nms.framework.tenant.core.aop.TenantIgnore;
import lombok.*;
import java.util.*;
import com.baomidou.mybatisplus.annotation.*;
import com.ys.nms.framework.mybatis.core.dataobject.BaseDO;

/**
 * 内存 DO
 *
 * @author zzy
 */
@TableName("mempools")
@KeySequence("mempools_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
@TenantIgnore
@Slave
public class MempoolsDO extends BaseSlaveDO {

    /**
     * ID
     */
    @TableId
    private Integer mempoolId;
    /**
     * 内存池在设备中的索引标识（如 SNMP 索引），用于区分同一设备的不同内存池。
     */
    private String mempoolIndex;
    /**
     * 关联设备物理实体的 SNMP 索引（来自 ENTITY-MIB），用于定位具体硬件组件。
     */
    @TableField(value = "entPhysicalIndex")
    private Integer entPhysicalIndex;
    /**
     * 内存池类型
     */
    private String mempoolType;
    /**
     * 内存池分类，用于逻辑分组，默认为系统级内存
     */
    private String mempoolClass;
    /**
     * 数据精度或单位倍数（例如：1 表示字节，1024 表示 KB），用于数值换算
     */
    private Integer mempoolPrecision;
    /**
     * 内存池的描述信息，如 "Physical RAM" 或 "Swap Space"，便于识别。物理内存，虚拟内存等
     */
    private String mempoolDescr;
    /**
     * 设备ID
     */
    private Integer deviceId;
    /**
     * 当前内存使用百分比（整数形式，如 75 表示 75%）
     */
    private Integer mempoolPerc;
    /**
     * 获取内存使用率的 SNMP OID 路径，用于动态采集数据
     */
    private String mempoolPercOid;
    /**
     * 已使用的内存量（单位由 mempool_precision	 决定）
     */
    private Long mempoolUsed;
    /**
     * 获取已使用内存值的 SNMP OID。
     */
    private String mempoolUsedOid;
    /**
     * 空闲内存量。
     */
    private Long mempoolFree;
    /**
     * 获取空闲内存值的 SNMP OID。
     */
    private String mempoolFreeOid;
    /**
     * 内存池总容量
     */
    private Long mempoolTotal;
    /**
     * 获取总内存容量的 SNMP OID。
     */
    private String mempoolTotalOid;
    /**
     * 最大的连续空闲内存块大小，用于分析内存碎片情况
     */
    private Long mempoolLargestfree;
    /**
     * 最小的空闲内存块大小（较少使用，可能为保留字段）。
     */
    private Long mempoolLowestfree;
    /**
     * 0	 表示正常，1	 表示已删除
     */
    private Boolean mempoolDeleted;
    /**
     * 内存使用率的告警阈值
     */
    private Integer mempoolPercWarn;


}
